from plotly.graph_objs import Bar, Layout
from plotly import offline
from die import Die

die = Die()
# 随机测试，保存结果
results = []
for roll_num in range(1000):
    result = die.roll()
    results.append(result)

# print(results)

# 分析频率
frequencies = []
for value in range(1, die.num_sides):
    frequencies.append(results.count(value))

# print(frequencies)

# 结果可视化
x_values = list(range(1, die.num_sides + 1))
# Bar类表示条形图数据集
data = [Bar(x=x_values, y=frequencies)]

# 设置坐标、标题
x_axis_config = {'title': '结果'}
y_axis_config = {'title': '频率'}
my_layout = Layout(title='掷一个D6 1000次的结果',
                   xaxis=x_axis_config,
                   yaxis=y_axis_config)

# offline.plot接受一个包含数据和布局的字典；还可以接受文件名，指定保存的路径。
# plotly的图表具有交互性，可以缩放平移保存图表图片
offline.plot({'data': data, 'layout': my_layout}, filename='output/d6.html')
